package cn.kgc.tangcco.application;

import cn.kgc.tangcco.action.UserAction;
import cn.kgc.tangcco.vo.UserVo;

import java.util.List;
import java.util.Scanner;

/**
 * @author 李昊哲
 * @Description
 * @create 2020/8/28 上午10:44
 */
public class App {
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        App app = new App();
        app.printMenu();
    }

    public void printMenu() {
        // 显示菜单
        System.out.println("~~~~~~桃李不言下自成蹊~~~~~~");
        System.out.println("查看用户列表请输入1");
        System.out.println("删除用户请输入2");
        System.out.println("查看用户列表请输入3");
        System.out.println("退出系统请输入0");
        System.out.print("请输入>>>");
        // 获取输入值
        int i = scanner.nextInt();
        // 调用处理器映射器执行对应的方法
        handlerMapping(i);

    }

    /**
     * 处理器映射器
     *
     * @param i 映射参数
     */
    private void handlerMapping(int i) {
        switch (i) {
            case 0: {
                System.out.println("你个渣女怎么忍心离开我");
                System.exit(0);
            }
            case 1: {
                // 显示用户列表
                queryAllUsers();
                // 打印菜单
                printMenu();
            }
            case 2: {
                // 显示用户列表
                queryAllUsers();
                // 删除用户
                deleteUser();
                // 显示用户列表
                queryAllUsers();
                // 打印菜单
                printMenu();
            }
            default: {

            }
        }
    }

    private void deleteUser() {
        System.out.print("请输入欲被删除用户的UUID,请输入>>>");
        String uuid = scanner.next();
        boolean b = new UserAction().deleteUser(uuid);
        if (b){
            System.out.println("删除成功");
        } else{
            System.out.println("删除失败");
        }
    }

    /**
     * 显示用户列表
     */
    private void queryAllUsers() {
        UserAction action = new UserAction();
        List list = action.queryAllUsers();
        for (int i = 0; i < list.size(); i++) {
            UserVo userVo = (UserVo) list.get(i);
            System.out.println(userVo.toString());
        }
    }
}
